home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 1 / Gold Medal Software Volume 1 (Gold Medal) (1994).iso / prog / cextract.arj / CEXTRACT.TAR / cextract / README.too < prev    next >
Encoding:
Text File  |  1993-08-08  |  8.8 KB  |  231 lines

  1. Newsgroups: comp.sources.reviewed
  2. From: Adam Bryant <adb@cs.bu.edu>
  3. Subject: v02i038: cextract - (Ver. 1.7) C prototyper/header file generator, Part00/05
  4. Message-ID: <1992Nov3.220749.16721@rick.dgbt.doc.ca>
  5. Originator: csr@calvin.dgbt.doc.ca
  6. Sender: news@rick.dgbt.doc.ca
  7. Organization: Communications Research Centre, Ottawa
  8. Date: Tue, 3 Nov 1992 22:07:49 GMT
  9. Lines: 222
  10.  
  11. Submitted-by: Adam Bryant <adb@cs.bu.edu>
  12. Posting-number: Volume 2, Issue 38
  13. Archive-name: cextract/part00
  14. Supersedes: cextract: Volume 1, Issue 4-8
  15.  
  16. Environment: UNIX, VMS
  17.  
  18. Tested Environments: 
  19.     This Version:
  20.         486, Xenix Sys V 2.3.3.3
  21.         HP9000/380, HP-UX 7.05, HP's old K&R cc.
  22.         Sun, SunOS 4.1.1 & 4.1.2, cc & gcc 2.2
  23.         IBM, AIX3RS 3.1 
  24.         SGI, IRIX 4.0.1 
  25.         IBM, RS/6000 530 AIX V3.2
  26.         Mips, Mips OS 4_51
  27.         NeXT, NeXTos 2.?
  28.         Apollo DN10000, Domain/OS 10.2, cc 6.7.
  29.  
  30.     Previous Version:
  31.         VAX/VMS
  32.         VAX 8700/VMS
  33.         VAX/BSD 4.3
  34.         IBM-RT/AOS 4.3
  35.         DECstation/Ultrix 3.1
  36.         IBM PS-2/AIX 1.2
  37.         MAC/AUX
  38.         Sun 4/SunOS 4.1.1
  39.         Sun 3/SunOS 4.0.3, 4.1.1
  40.         SGI/IRIX 3.3
  41.         Apollo DN10000/Domain OS 10.2.p
  42.  
  43. Dates:
  44.     Submission Received: April 23 1992
  45.     Reviews Returned: June 9 1992
  46.     Revised Submission Received: June 22 1992
  47.     Reviews Returned: August 17 1992
  48.     Revised Submission Received: September 8 1992
  49.     Reviews Returned: October 14 1992
  50.     Revised Submission Received: October 31 1992
  51.     Accepted: October 31 1992
  52.  
  53.  
  54. Author's Summary:
  55. -----------------
  56.  
  57. This package contains a C prototype extractor.  It is ideal for
  58. generating header files for large multi-file C programs, and will
  59. provide an automated method for generating all of the prototypes for
  60. all of the functions in such a program.  It may also function as a
  61. rudimentary documentation extractor, generating a sorted list of all
  62. functions and their locations.
  63.  
  64. Version 1.2 was the last version posted to comp.sources.reviewed, and
  65. much has been changed since that release.  The full history of changes
  66. is contained in the beginning of the parse.c file, but most important
  67. changes include:
  68.  
  69.      o  It should now be more portible, although I still have not
  70.     gotten feedback from any MS-DOS or Macintosh programmers.
  71.  
  72.      o  The configuration files, .cextrc and the system configuration
  73.     files , may now be generated automatically by cextract itself
  74.     using the "build-config" command flag.
  75.  
  76.      o  The ability to locate functions has been improved.
  77.  
  78.      o  Errors or warnings now display a file and line number of where
  79.     the error in file parsing occured.
  80.  
  81.      o  The Makefile, documentation and other "support" files have
  82.     been improved.
  83.  
  84.      o  Output may now be much more compact using the "merge-output"
  85.     option.
  86.  
  87.      o  Installation and testing should now be much easier.
  88.  
  89.      o  Control over inclusion/exclusion of "static" functions is
  90.     greatly improved.
  91.  
  92.      o  Command line options are more consistent.
  93.  
  94.      o  Output may be "wrapped" using the "break-after-types" and
  95.     "wrap-parameters" options.
  96.  
  97.      o  C++ "//" style comments are now considered valid syntax.
  98.  
  99.      o  The proper "#if __STDC__" enclosure is now used.
  100.  
  101.      o  The preprocessor used by cextract may be selected at runtime.
  102.  
  103.      o  Many other bugs and incompatiblities have been fixed.
  104.  
  105.  
  106. Reviewers' Comments:
  107. --------------------
  108.  
  109.   -------------
  110.   This Version:
  111.   -------------
  112.  
  113. Cextract is quite a useful tool for generating function protypes from ANSI or
  114. K&R C code.  It also functions nicely as a simple documentation extractor
  115. for C code.  The program features many configurable options, and supports
  116. both system-wide and user configuration files.
  117.  
  118. ------------------------------------------------------------------------------
  119.  
  120. I compiled cextract on SunOS 4.1.2, HP-UX 8.0 and HP-UX 8.07 using both
  121. standard C and ANSI C compilers on each platform (sun4c, s300, s700,
  122. s800).  In all cases it behaved as expected.  I also verified that its
  123. output matched the output of another prototype extraction tool on
  124. 60,000+ lines of source code.  The output matched in all cases.
  125.  
  126.  
  127. ------------------------------------------------------------------------------
  128.  
  129. 'Cextract' is an ANSI/K&R prototype extractor.  It would appear to
  130. work on most any Unix box and VMS (tested on SunOS 4.1 with cc and gcc 2.2).
  131. It is not directly installable on any other OS (some mods would be
  132. necessary...should be doable).  Command line switches and a configuration
  133. file allow you to customize the output format.  It includes conditional
  134. #if in its output so that future runs of cextract will not use its own
  135. prototypes (this allows you to change your function definitions
  136. easily).  A pretty nice utility.
  137.  
  138. ------------------------------------------------------------------------------
  139.  
  140. Eases production of interface files by extracting prototypes and
  141. comments in ANSI and non-ANSI styles.  Simple to use, both
  142. interactively and non-interactively.  Speedy and has good
  143. documentation.
  144.  
  145. ------------------------------------------------------------------------------
  146.  
  147. Cextract is a useful addition to anyone's development tools.  I've
  148. always managed to kludge my way around the header-file creation problem
  149. with as little effort as I can manage, but with cextract, my effort
  150. will be reduced to nearly nothing in comparison.  It has a rich set of
  151. options, and it's easy to tailor the operation of the program to
  152. whatever project you happen to be working on.  The author even allowed
  153. for easy compilation of function documentation.  I've used prototype
  154. extractors before, but this is the one I'm actually going to adopt.
  155.  
  156. ------------------------------------------------------------------------------
  157.  
  158. I give this one a 90 out of 100.  I've already recommended it to
  159. coworkers...I'm already using it with other projects.
  160.  
  161. It was nice to see VMS help files and Unix man pages that both looked
  162. correct for their environments.
  163.  
  164. ------------------------------------------------------------------------------
  165.  
  166. `Cextract' version 1.7 contains a number of improvements over the first
  167. release.  As with the first version, it is an efficient means of
  168. extracting function prototypes from C source files, and it can also
  169. produce documentation (in plain ASCII or roff).  It contains a number
  170. of command-line options which make it particularly suitable for large
  171. projects consisting of many source files.  It is also sufficiently
  172. flexible to cater for almost all needs (certainly all of mine).
  173.  
  174. The new automatic configuration file generation is a welcome addition,
  175. and enables the user to get the options they want quickly.
  176.  
  177.  
  178.   -----------------
  179.   Previous Version:
  180.   -----------------
  181.   
  182.   I have tested this program on a VAX running BSD 4.3, an IBM RT/PC
  183. running AOS 4.3, a DECstation running Ultrix 3.1, an IBM PS/2 running
  184. AIX 1.2, and a Mac running A/UX.  It compiles and passes its test with
  185. no problems on all of these systems.
  186.  
  187.   The package provides a fast, portable method for extracting function
  188. declarations.  The features that I find most useful include its
  189. ability to surround the declarations with #ifdef directives that
  190. control when they are used (or that prevent reuse), and its ability to
  191. produce both ANSI and non-ANSI declarations and to put in an #ifdef to
  192. cause the ANSI declarations to be used only when appropriate.
  193.  
  194.     ---------------------------------------------------------------
  195. Cextract is a nice tool, that extracts routine headers of a C program
  196. into an .h file.  Both ANSI-C and K&R C are supported.  It has many
  197. extra facilities, but unfortunately most of them require a C
  198. preprocessor which does not strip of comments like VAX-C does.  I
  199. look forward to using it.  cextract was reviewed on VAX/VMS.
  200.  
  201.     ---------------------------------------------------------------
  202.  
  203.     Cextract eases production of interface files by extracting
  204. prototypes in ANSI and non-ANSI styles.  Can extract leading comments as
  205. well, and can generate the skeleton for code documentation.
  206.  
  207.     ---------------------------------------------------------------
  208. `Cextract' is an extremely useful utility for managing software
  209. written in C.  It extracts function headings from source files
  210. and makes prototypes of them, to make a header file suitable for
  211. inclusion by other source files.  The documentation option
  212. produces output suitable for printing.  There are numerous
  213. switches for handling comments, ANSI/non-ANSI declarations,
  214. sorting of the prototypes, and so on.  The `-H' option is
  215. particularly useful in dealing with large software projects.
  216.  
  217. The program was tested on Sun, VAX, and Apollo systems, and
  218. performed as expected.  (A note for Apollo users:  the SYSFLG
  219. option in the Makefile should be set to -DBSD -U__STDC__, because
  220. the Apollo C compiler thinks that it is ANSI C - but we know
  221. better!)
  222.  
  223. I strongly recommend the use of `cextract' for any size of
  224. project!  (I particularly wish to praise the author for his
  225. speedy action in dealing with the reviewers' comments.)
  226.  
  227.  
  228.         Andrew Patrick acting as Comp.Sources.Reviewed Moderator
  229.               Department of Communications, Ottawa, CANADA
  230.                          csr@calvin.dgbt.doc.CA
  231.